Python İle Dosya Transferi

Python ile soket programlama yaparak dosya transfer edeceğiz. Bunun için Python üzerinde Socket kütüphanesini kullanacağız.

İlk olarak dosyayı yollayacağımız kodlarımız üzerinde bir soket bağlantısı açacağız ve dosyayı aktaracağımız makinadan talep olmasını bekleyeceğiz.

Talep olduktan sonra ilk olarak dosyamızın adını, daha sonrada dosyamızın içeriğini byte olarak yollayacağız.

Şimdi ilk aşama olarak dosyayı yollayacağımız kodlarımızı oluşturalım. Bu aşamada adım adım ilerleyeceğiz.

send_file.py

Adım 1 : Socket kütüphanemizi ekliyoruz.

Adım 2 : Dinleyeceğimiz İp Adresini ve Port Numaramızı belirleyip portumuzu dinlemeye başlıyoruz.

Adım 3 : Sonsuz Döngü oluşturarak dosyayı transfer edeceğimiz alıcının bağlanmasını bekliyoruz. Alıcı bağlandıktan sonra Dosyanın Adını alıcıya yolluyoruz ve Dosyamızı transfer ediyoruz.

Adım 4 : Son adım olarak soket bağlantımızı kapatıyoruz.

İkinci aşamada dosyayı transfer edeceğimiz, alınıcının kodlarını oluşturuyoruz. Bu aşamada da adım adım ilerleyeceğiz.

receive_file.py

Adım 1 : Socket kütüphanemizi ekliyoruz.

Adım 2 : Dosyayı almak için bağlantı kuracağımız İp Adresini ve Port Numarasını belirliyoruz.

Adım 3 : Bir karşılama mesajı yolluyoruz ardından dosya ismimizi karşıdan alıp dosyanın transferine başlıyoruz.

Kodlarımız bu kadar. Bu yazının altında kodların tam halini bulabilirsiniz.

send_file.py : 

receive_file.py : 

 

Bu Kategorideki Diğer Yazılar

4 Thoughts to “Python İle Dosya Transferi”

  1. furkan cinar

    Merhaba,
    conn.send(Veri) kısmında “expected an indented block “hatası alıyorum, sebebi ne olabilir acaba?
    Teşekkürler.

    1. Merhaba, satırın içe kırılımı ile ilgili bir hata gibi gözüküyor.Sol taraftan olan boşluk bir üst satır ile aynı olması gerekiyor örneğin tab ile boşluk bıraktıysanız tab ile yada space ile boşluk bıraktıysanız space ile devam etmesi gerekiyor.

  2. fatih

    burda dosya aktarım işlemi için aynı ağa mı bağlı olmak gerekir, bide bu ip adresi public ip adres mi

    1. Merhaba,
      İlk olarak eğer tanımladığınız port numarasını(Port = 123) modem veya router üzerinden açarsanız uzak sunucuya transfer içinde kullanabilirsiniz.
      İkinci olarak ben kendi bilgisayarım üzerinde hem dosya alma hem de aktarma işlemi yaptığım için 127.0.0.1 local ip adresimi tanımladım.
      Eğer uzak bilgisayara dosya göndermek veya almak istiyorsanız send_file.py dosyasındaki ip adresi 127.0.0.1 olarak kalabilir,
      receive_file.py dosyasındaki ip adresini ise send_file.py dosyasının çalıştığı bilgisayara ait dış ip adresini verirseniz çalışacaktır.

Leave a Comment